package matlap.client.services.student;

import java.util.List;

import matlap.shared.Score;
import matlap.shared.Student;

import com.google.gwt.user.client.rpc.AsyncCallback;

public interface StudentServiceAsync {

	void getStudentsNumber(AsyncCallback<Integer> callback);

	void getStudentsName(AsyncCallback<List<String>> callback);

	void getStudents(AsyncCallback<List<Student>> callback);

	void selectStudentsName(AsyncCallback<List<Student>> callback);

	void selectSchools(AsyncCallback<List<Student>> callback);

	void selectGrades(AsyncCallback<List<Student>> callback);

	void selectLocalities(AsyncCallback<List<Student>> callback);

	void getUserNames(AsyncCallback<List<String>> callback);

	void getStudentByUserName(String userName, AsyncCallback<Student> callback);

	void updatePeopleStudents(String userName, String lastName,
			String firstName, String address, String schoolName, int classNr,
			AsyncCallback<Void> callback);

	void updateStudents(String userName, int schoolID, int classNr,
			AsyncCallback<Void> callback);

	void deleteStudent(String userName, AsyncCallback<Void> callback);

	void update(Student studentName, AsyncCallback<Void> callback);

	void insertStudentScore(Score s, AsyncCallback<Void> callback);

	void updateStudentScore(Score s, AsyncCallback<Void> callback);

	void selectSchoolID(String schoolName, AsyncCallback<Integer> callback);

	void selectStudentsScore(AsyncCallback<List<Score>> asyncCallback);

	void selectStudentsWithoutScore(AsyncCallback<List<Student>> callback);

	void getStudentsBy(String name, String string, String string2,
			String string3, AsyncCallback<List<Student>> asyncCallback);

	void getStudentByUserName2(String userName, AsyncCallback<Student> callback);

	void getStudentPeopleByUserName(String username,
			AsyncCallback<Student> callback);

	// void getStudentBy(String name, String school, String grade,
	// String locality, AsyncCallback<List<Student>> callback);

}
